package projet_v1;

import java.util.List;

import projet_v1.simulation.Field;

/**
 * The interface to be implemented by any class wishing to participate in the
 * simulation.
 */
public interface Actor {
    /**
     * Perform the actor's daily behavior. Transfer the actor to updatedField if
     * it is to participate in further steps of the simulation.
     * 
     * @param currentField
     *            The current state of the field.
     * @param updatedField
     *            The updated state of the field.
     * @param newActors
     *            A list to add newly born actors to.
     */
    abstract public void act(Field currentField, Field updatedField,
            List<Actor> newActors);

}
